home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - DOS Part 2
/
DOS028.dsk
/
KWAK STAK.int
< prev
next >
Wrap
Text File
|
2012-02-16
|
6KB
|
186 lines
100 TEXT :GOSUB 12000
500 DIM NAME$(20),NAME1$(20),NAME2$(20)
510 DIM H1(18),H2(18),D(60)
520 DIM LTR$(15):LTR$="ABCDEFGHIJKLMNO"
1000 D$="<CTRL-D>":REM "CTRL D"
1020 PRINT D$;"BLOAD KWAK.OBJ"
1040 POKE 806,1: POKE 807,0
1060 TEXT :CALL -936:CALL 3072
1080 VTAB 22:PRINT "HI! WHAT'S YOUR NAME?"
1100 INPUT "PLAYER #1: ",NAME$
1120 IF NAME$="" THEN 1100
1140 Y=20:GOSUB 9000
1160 NAME1$=NAME$
1180 CALL -198:CALL -198
1190 POKE 800,0: POKE 801,0: POKE 802,80: POKE 812,170:CALL 3780: POKE 800,23: POKE 801,1:CALL 3786
1195 POKE 800,0: POKE 801,0: POKE 802,82: POKE 812,85:CALL 3780: POKE 800,23: POKE 801,1:CALL 3786
1197 Y=40:GOSUB 8000
1200 INPUT "PLAYER #2: ",NAME$
1220 IF NAME$="" THEN 1200
1240 Y=100:GOSUB 9000
1260 NAME2$=NAME$
1280 CALL -198:CALL -198
1300 Y=120:GOSUB 8000
1400 CALL -936
1420 FOR I=1 TO 18:H1(I)=0:H2(I)=0:NEXT I
1500 VTAB 23:PRINT "ONE MOMENT PLEASE"
1520 FOR I=1 TO 60:D(I)=I MOD 2:NEXT I
1540 FOR I=1 TO 120:A= RND (60)+1:B= RND (60)+1:TEMP=D(A):D(A)=D(B):D(B)=TEMP:NEXT I
1560 N=3
1580 CALL -936:VTAB 22:PRINT NAME1$;" STARTS WITH A";
1600 IF D(1)=0 THEN PRINT "N EGG.":IF D(1)=1 THEN PRINT " DUCK."
1610 X=0:C=255
1620 Y=50:IF D(1)=0 THEN GOSUB 5000:IF D(1)=1 THEN GOSUB 6000:H1(1)=D(1)+1
1630 CALL -198
1640 PRINT "REMEMBER THAT."
1660 FOR DELAY=1 TO 1000:NEXT DELAY
1680 C=0:IF H1(1)=1 THEN GOSUB 5000:IF H1(1)=2 THEN GOSUB 6000
1690 C=255:GOSUB 7000
1700 CALL -936:VTAB 22:PRINT NAME2$;" STARTS WITH A";
1720 IF D(2)=0 THEN PRINT "N EGG.":IF D(2)=1 THEN PRINT " DUCK."
1740 X=0:C=255
1760 Y=130:IF D(2)=0 THEN GOSUB 5000:IF D(2)=1 THEN GOSUB 6000:H2(1)=D(2)+1
1780 PRINT "REMEMBER THAT."
1790 CALL -198
1800 FOR DELAY=1 TO 1000:NEXT DELAY
1820 C=0:IF H2(1)=1 THEN GOSUB 5000:IF H2(1)=2 THEN GOSUB 6000
1860 C=255:GOSUB 7000
1900 T=0:H1=1:H2=1
2000 REM PLAY
2010 T=T+1
2020 R= RND (100)+1:IF R<31 THEN G=1
2040 IF R>30 AND R<71 THEN G=2
2060 IF R>70 AND R<91 THEN G=3
2080 IF R>90 THEN G=4
2120 IF T MOD 2=1 THEN 3000:GOTO 4000
3000 REM PLAYER #1
3010 F=( RND (14)+1) MOD (H1+1):IF F=0 THEN F=H1
3020 CALL -936:VTAB 21
3040 PRINT NAME1$;":"
3060 PRINT "YOU GET ";G;" MORE, IF YOU CAN TELL ME"
3070 PRINT "WHAT COLUMN ";LTR$(F,F);" IS. (D=DUCK, E=EGG)"
3100 K= PEEK (-16384):IF K<=127 THEN 3100
3120 POKE -16368,0:IF K=196 OR K=197 THEN 3160
3140 GOSUB 10000:GOTO 3100
3160 Y=50:C=0:X=18*(F-1):GOSUB 7000
3180 C=255:GOSUB 5000+1000*(H1(F)=2)
3200 K=198-K
3210 L=G:IF L>=H1 THEN L=H1-1
3220 IF H1(F)=K THEN 3400
3240 CALL -936:VTAB 23:PRINT "WRONG ! YOU LOSE ";L;" COLUMNS."
3260 FOR DELAY=1 TO 1000:NEXT DELAY
3300 REM
3310 C=0:GOSUB 5000+1000*(H1(F)=2):C=255:GOSUB 7000
3315 IF L=0 THEN 3600
3320 FOR I=H1-L+1 TO H1
3330 C=0:X=18*(I-1):GOSUB 7000
3340 NEXT I
3350 H1=H1-L
3360 GOTO 3600
3400 W=G:IF H1+G>15 THEN W=15-H1
3420 CALL -936:VTAB 23:PRINT "CORRECT ! YOU WIN ";W;" COLUMNS !"
3440 J=H1:FOR I=J+1 TO J+W
3450 C=255:H1=H1+1:H1(H1)=D(N)+1:N=N+1
3460 X=18*(I-1):GOSUB 5000+1000*(H1(H1)=2)
3480 CALL -198
3490 NEXT I
3495 FOR DELAY=1 TO 1500:NEXT DELAY
3496 X=18*(F-1)
3497 C=0:GOSUB 5000+1000*(H1(F)=2):C=255:GOSUB 7000
3500 FOR I=J+1 TO J+W
3520 C=0
3540 X=18*(I-1):GOSUB 5000+1000*(H1(I)=2):C=255:GOSUB 7000
3580 NEXT I
3600 IF H1=15 THEN 9500
3610 GOTO 2000
4000 REM PLAYER #2
4010 F=( RND (14)+1) MOD (H2+1):IF F=0 THEN F=H2
4020 CALL -936:VTAB 21
4040 PRINT NAME2$;":"
4060 PRINT "YOU GET ";G;" MORE, IF YOU CAN TELL ME"
4070 PRINT "WHAT COLUMN ";LTR$(F,F);" IS. (D=DUCK, E=EGG)"
4100 K= PEEK (-16384):IF K<=127 THEN 4100
4120 POKE -16368,0:IF K=196 OR K=197 THEN 4160
4140 GOSUB 10000:GOTO 4100
4160 Y=130:C=0:X=18*(F-1):GOSUB 7000
4180 C=255:GOSUB 5000+1000*(H2(F)=2)
4200 K=198-K
4210 L=G:IF L>=H2 THEN L=H2-1
4220 IF H2(F)=K THEN 4400
4240 CALL -936:VTAB 23:PRINT "WRONG ! YOU LOSE ";L;" COLUMNS."
4260 FOR DELAY=1 TO 1000:NEXT DELAY
4300 REM
4310 C=0:GOSUB 5000+1000*(H2(F)=2):C=255:GOSUB 7000
4315 IF L=0 THEN 4600
4320 FOR I=H2-L+1 TO H2
4330 C=0:X=18*(I-1):GOSUB 7000
4340 NEXT I
4350 H2=H2-L
4360 GOTO 4600
4400 W=G:IF H2+G>15 THEN W=15-H2
4420 CALL -936:VTAB 23:PRINT "CORRECT ! YOU WIN ";W;" COLUMNS !"
4440 J=H2:FOR I=J+1 TO J+W
4450 C=255:H2=H2+1:H2(H2)=D(N)+1:N=N+1
4460 X=18*(I-1):GOSUB 5000+1000*(H2(H2)=2)
4480 CALL -198
4490 NEXT I
4495 FOR DELAY=1 TO 1500:NEXT DELAY
4496 X=18*(F-1)
4497 C=0:GOSUB 5000+1000*(H2(F)=2):C=255:GOSUB 7000
4500 FOR I=J+1 TO J+W
4520 C=0
4540 X=18*(I-1):GOSUB 5000+1000*(H2(I)=2):C=255:GOSUB 7000
4580 NEXT I
4600 IF H2=15 THEN 9500
4610 GOTO 2000
5000 REM DRAW EGG
5020 POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
5040 CALL 3761
5060 LOC=6332: POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,C
5080 CALL 3805
5100 RETURN
6000 REM DRAW DUCK
6020 POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
6040 CALL 3761
6060 LOC=6446: POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,C
6080 CALL 3805
6100 RETURN
7000 REM DRAW UNKNOWN
7020 POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
7040 CALL 3761
7060 LOC=6560: POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,C
7080 CALL 3805
7100 RETURN
8000 REM OUTPUT HEADING LETTERS
8020 FOR I=1 TO 15
8040 LOC=4772+26*(I-1)
8060 X=4+18*(I-1)
8080 POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
8100 CALL 3761
8120 POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,255
8140 CALL 3805
8160 NEXT I
8180 RETURN
9000 REM OUTPUT PLAYER NAME
9020 FOR I=1 TO LEN(NAME$)
9040 IF I=1 THEN LOC=4772+( ASC(NAME$(I,I))-193)*26
9060 IF I>1 THEN LOC=4096+( ASC(NAME$(I,I))-193)*26
9080 X=20+7*(I-1)
9100 POKE 800,X MOD 256: POKE 801,X/256: POKE 802,Y
9120 CALL 3761
9140 POKE 804,LOC MOD 256: POKE 805,LOC/256: POKE 28,255
9160 CALL 3805
9180 NEXT I
9200 RETURN
9500 CALL -936:VTAB 23:PRINT "GAME OVER"
9510 CALL -198:CALL -198:CALL -198
9520 END
10000 FOR BUZ=1 TO 50:S= PEEK (-16336)+ PEEK (-16336)- PEEK (-16336):NEXT BUZ:RETURN
12000 CALL -936:VTAB 5:TAB 7:PRINT "KWAK STAK -- A MEMORY GAME"
12020 PRINT :TAB 14:PRINT "BY JIM HILGER"
12040 VTAB 21:TAB 5:PRINT "WHICH CAME FIRST..."
12045 PRINT
12050 TAB 15:PRINT "THE DUCK OR THE EGG?"
12060 FOR DELAY=1 TO 4000:NEXT DELAY
12070 RETURN